Several types of data storage devices, such as Flash memory, store data in arrays of cells. A physical property of each cell, such as a stored charge, material phase, electrical resistance, magnetization, or the like, is alterable to encode data. The range of possible values for the physical property is divided into discrete states, so that each state encodes a possible data value. For example, a cell with two states may encode a “0” or a “1,” corresponding to one binary digit, or bit, of information.
Higher storage densities may be achieved by dividing the range of possible values for each cell into more than two states. For example, a cell with four states may encode two bits of information, and a cell with eight states may encode three bits of information. However, adding states to a cell may decrease a size of each state, thus increasing the probability that an error will occur where a stored value of the cell drifts from one state to an adjacent state. Also, if a cell encodes multiple bits, one bit in the cell may be more prone to errors than another bit in the same cell, depending on the arrangement of the states and on the encoding that is used.